package com.jyw.business.de.domain.vo.web;

import com.jyw.business.de.domain.DeDemandProjectAudit;
import com.jyw.business.de.domain.DeDemandRating;
import com.jyw.common.annotation.Conversion;
import com.jyw.common.annotation.Excel;
import com.jyw.common.enums.ConversionType;
import com.jyw.common.utils.bean.BeanUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.FieldNameConstants;
import org.springframework.util.ObjectUtils;

import java.util.Date;

/**
 * 需求-需求定性对象 de_demand_rating
 * 
 * @author ruoyi
 * @date 2024-02-24
 */
@Data
@ApiModel("需求定性详情实体")
@FieldNameConstants
@NoArgsConstructor
public class DemandRatingVO
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @ApiModelProperty("主键")
    private Long id;


    /** 定性类型(1 需求优化 2新建项目) */
    @ApiModelProperty("定性类型(1 需求优化 2新建项目)")
    private String ratingType;

    /** 需求立项审核id */
    @ApiModelProperty("需求立项审核id")
    private Long auditId;

    /** 项目名称 */
    @ApiModelProperty("项目名称")
    @Excel(name = "项目名称")
    private String projectName;

    /** 新建项目原因 */
    @ApiModelProperty("新建项目原因")
    @Excel(name = "新建项目原因")
    private String projectRemark;

    /** 状态 0待审核 1驳回 2通过 */
    @ApiModelProperty("审核状态 0待审核 1驳回 2通过")
    private String projectState;

    /** 处理人 */
    @ApiModelProperty("创建人")
    @Conversion(value = ConversionType.USER,name = Fields.createUserName)
    private Long createUser;

    /** 处理人 */
    @ApiModelProperty("创建人")
    private String createUserName;

    /** 处理时间 */
    @ApiModelProperty("创建时间")
    private Date createTime;

    public DemandRatingVO(DeDemandRating rating, DeDemandProjectAudit audit) {
        BeanUtils.copyProperties(rating,this);
        if(!ObjectUtils.isEmpty(audit)){
            setProjectName(audit.getProjectName());
            setProjectRemark(audit.getProjectRemark());
            setProjectState(audit.getProjectState());
        }
    }
}
